# -*- encoding:utf-8 -*-

class Robot:
    num = 0

    def __init__(self, name="Robot_0"):
        '''
        __init__ 方法会在类的对象被实例化（Instantiated）时立即运行。这一方法可以对任何你想
        进行操作的目标对象进行初始化（Initialization）操作。这里你要注意在 init 前后加上的双下划线。
        :param name: 机器人的名字
        '''
        self.name = name
        Robot.num += 1

    def die(self):
        print("{0} is die".format(self.name))
        Robot.num -= 1

    def say_hi(self):
        print("Hi I'am {0}".format(self.name))

    @classmethod
    def show_num(self):
        '''
        @classmethod 将方法标记为类方法。
        装饰器等价于调用：
        how_many = classmethod(how_many)

        :return:
        '''
        print("Robot num = {0}".format(Robot.num))


robot = Robot(name="Kitty")
robot.say_hi()
Robot.show_num()
robot.die()
Robot.show_num()
